<?php

namespace Admin\Controller;

use Zend\Form\Annotation\AnnotationBuilder;
use Admin\Form\CiculationManagementForm;
use Admin\Controller\IndexController;
use Admin\Model\DBO\CiculationManagementDBO;

class CiculationManagementController extends IndexController {

    public $form;

    public function getForm() {
        if (!$this->form) {
            $user = new CiculationManagementForm();
            $builder = new AnnotationBuilder();
            $this->form = $builder->createForm($user);
            $this->form->get('selectStyleCiculation')->setOptions(
                    array(
                        'value_options' => array(
                            '0' => 'DS lưu thông trong ngày',
                            '1' => 'DS lưu thông trong tháng',
                        ),
                    )
            );
        }

        return $this->form;
    }

    public function indexAction() {
        // Kiem tra quyền đã đăng nhập
        $this->checkRole2();
        // Neu dang nhap roi thi hien thi len sach sach nguoi dung
        // Lay thuc the dang nhap dua ra layout
        $this->layout()->identity = $this->getAuthService()->getIdentity();
        // Tạo form
        // Hiển thị danh sách tài liệu đang mượn trong ngày
        $form = $this->getForm();
        $objectCiculationManagement = new CiculationManagementDBO($this->getServiceLocator());
        $dateTime = date('Y-m-d');
        // Tham số 0 đại diện cho tài liệu được trả
        $result = $objectCiculationManagement->getListData($dateTime, 0);
        $paginator = $result['paginator'];
        $allAuthor = $result['allAuthor'];
        $paginator->setCurrentPageNumber((int) $this->params()->fromQuery('page', 1));
        $paginator->setItemCountPerPage(10);
        $paginator->setPageRange(5);
        return array(
            'form' => $form,
            'paginator' => $paginator,
            'allAuthor' => $allAuthor,
        );
    }

    public function selectStyleCiculationAction() {
        $form = $this->getForm();
        $request = $this->getRequest();
        if ($request->isPost()) {
            $dataRequest = $request->getPost();
            $form->setData($dataRequest);
            if ($form->isValid()) {
                $data = $form->getData();
                if ($data['buttonReport'] != null) {
                    
                }
                // selectStyleCiculation == 1 tuong ung voi danh sach trong tháng
                if ($data['selectStyleCiculation'] == 1) {
                    // $data['radioButton'] == 1 tuong ung voi danh sach muon
                    if (($data['radioButton'] == 1)) {
                        $form = $this->getForm();
                        $objectCiculationManagement = new CiculationManagementDBO($this->getServiceLocator());
                        $dateTime = explode('-', date('Y-m-d'));
                        $time = $dateTime[0] . '-' . $dateTime[1] . '-1';
                        // Tham số 0 đại diện cho tài liệu được trã
                        $result = $objectCiculationManagement->getListDataInMonth($time, 1);
                        $paginator = $result['paginator'];
                        $allAuthor = $result['allAuthor'];
                        $paginator->setCurrentPageNumber((int) $this->params()->fromQuery('page', 1));
                        $paginator->setItemCountPerPage(7);
                        $paginator->setPageRange(5);
                        return array(
                            'form' => $form,
                            'paginator' => $paginator,
                            'allAuthor' => $allAuthor,
                        );
                    }
                    // Danh sach tra
                    else {
                        $form = $this->getForm();
                        $objectCiculationManagement = new CiculationManagementDBO($this->getServiceLocator());
                        $dateTime = explode('-', date('Y-m-d'));
                        $time = $dateTime[0] . '-' . $dateTime[1] . '-1';
                        // Tham số 0 đại diện cho tài liệu được trã
                        $result = $objectCiculationManagement->getListDataInMonth($time, 0);
                        $paginator = $result['paginator'];
                        $allAuthor = $result['allAuthor'];
                        $paginator->setCurrentPageNumber((int) $this->params()->fromQuery('page', 1));
                        $paginator->setItemCountPerPage(7);
                        $paginator->setPageRange(5);
                        return array(
                            'form' => $form,
                            'paginator' => $paginator,
                            'allAuthor' => $allAuthor,
                        );
                    }
                } else {
                    if (($data['radioButton'] == 1)) {
                        $form = $this->getForm();
                        $objectCiculationManagement = new CiculationManagementDBO($this->getServiceLocator());
                        $dateTime = date('Y-m-d');
                        // Tham số 0 đại diện cho tài liệu được trã
                        $result = $objectCiculationManagement->getListData($dateTime, 1);
                        $paginator = $result['paginator'];
                        $allAuthor = $result['allAuthor'];
                        $paginator->setCurrentPageNumber((int) $this->params()->fromQuery('page', 1));
                        $paginator->setItemCountPerPage(7);
                        $paginator->setPageRange(5);
                        return array(
                            'form' => $form,
                            'paginator' => $paginator,
                            'allAuthor' => $allAuthor,
                        );
                    }
                    // Danh sach tra
                    else {
                        $form = $this->getForm();
                        $objectCiculationManagement = new CiculationManagementDBO($this->getServiceLocator());
                        $dateTime = date('Y-m-d');
                        // Tham số 0 đại diện cho tài liệu được trã
                        $result = $objectCiculationManagement->getListData($dateTime, 0);
                        $paginator = $result['paginator'];
                        $allAuthor = $result['allAuthor'];
                        $paginator->setCurrentPageNumber((int) $this->params()->fromQuery('page', 1));
                        $paginator->setItemCountPerPage(7);
                        $paginator->setPageRange(5);
                        return array(
                            'form' => $form,
                            'paginator' => $paginator,
                            'allAuthor' => $allAuthor,
                        );
                    }
                }
            }
        }
        return array(
            'form' => $form,
        );
    }

}